001 /* 002 * Created by IntelliJ IDEA. 003 * User: Wei Wang 004 * Date: 4-Sep-2002 005 * Time: 1:44:25 PM 006 * To change template for new class use 007 * Code Style | Class Templates options (Tools | IDE Options). 008 */ 009 package EVolve.util.unifyutils; 010 011 import EVolve.visualization.*; 012 import java.util.*; 013 import EVolve.Scene; 014 import EVolve.exceptions.NoDataPlotException; 015 016 public class UnifiedVisualization { 017 private ArrayList viz; 018 private int dimension; 019 private HashSet fullEntitySet; 020 021 public UnifiedVisualization(int dimension) { 022 this.dimension = dimension; 023 viz = new ArrayList(); 024 fullEntitySet = new HashSet(); 025 } 026 027 public boolean exists(Visualization visual) { 028 boolean retValue = false; 029 for (int i=0;i<viz.size();i++) { 030 if (((Visualization)viz.get(i)).getVisualizationID() == visual.getVisualizationID()) { 031 retValue = true; 032 } 033 } 034 return retValue; 035 } 036 037 public void addVisualization(Visualization [] visuals) { 038 039 for (int i=0;i<visuals.length;i++) { 040 if (exists(visuals[i])) continue; 041 viz.add(viz.size(),visuals[i]); 042 } 043 } 044 045 public void visualize() { 046 ArrayList tobeViz = new ArrayList(); 047 fullEntitySet.clear(); 048 049 for (int i=0; i<viz.size(); i++) { 050 Visualization visual = (Visualization)viz.get(i); 051 AutoImage image = visual.getImage(); 052 if (image == null) 053 tobeViz.add(visual); 054 } 055 056 if (tobeViz.size() != 0) { 057 Scene.getVisualizationManager().prepareForLinkedViz(tobeViz,0); 058 Scene.visualize(); 059 } 060 061 Unification.getUnifiedEntity(fullEntitySet,viz,dimension); 062 063 for (int i = 0; i< viz.size(); i++) { 064 Visualization visual = (Visualization)viz.get(i); 065 ReferenceDimension dim = visual.getLinkableDimension(dimension); 066 dim.linkEntities(fullEntitySet); 067 try { 068 dim.visualize(); 069 } catch (NoDataPlotException e) { 070 Scene.showErrorMessage(e.getMessage()); 071 } 072 } 073 074 for (int i=0; i<viz.size(); i++) { 075 ((Visualization)viz.get(i)).visualize(); 076 } 077 } 078 079 public int unregisterViz(Visualization visual) { 080 int delCount = 0; 081 for (int i=0;i<viz.size();i++) { 082 if (((Visualization)viz.get(i-delCount)).getVisualizationID() == visual.getVisualizationID()) { 083 viz.remove(i-delCount); 084 delCount++; 085 } 086 } 087 if (viz.size() == 1) viz.clear(); 088 089 return viz.size(); 090 } 091 092 }